#ifndef __LOVER_H__
#define __LOVER_H__
class PacketDecoder;

typedef Int32 LoverId;
struct PlayerId;
class Player;

class Lover
{
private:
	Lover();
public:
	Lover(LoverId nLoverId);
	virtual ~Lover();
	void SetLoverId(LoverId nLoverId){m_nLoverId = nLoverId;}
	LoverId GetLoverId(){ return m_nLoverId;}
	void SetLoverInfo(LoverInfo& info){m_stLoverInfo = info;};
	LoverInfo& GetLoverInfo(){return m_stLoverInfo;}

	void addSkill(Int32 csv_id);
	void removeSkill(Int32 csv_id);
	bool hasSkill(Int32 csv_id);
	Skill* getSkill(Int32 csv_id);
	void decodeSkills();
	void encodeSkills();
	void sendSkills(PacketEncoder &encoder);
	void encodeEquipsImage(PacketEncoder &encoder);

	void SetWatch(bool bWatch){m_bWatch = bWatch;}
	bool GetWatch(){ return m_bWatch;}

	void SetOwnerPlayer(Player* pPlayer);
	Player* GetOwnerPlayer();
private:
	LoverId				m_nLoverId;
	LoverInfo			m_stLoverInfo;
	std::vector<SkillId>	m_arSkills;
	bool			m_bWatch;
	void*			m_pOwnerPlayer;
};
#endif